﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Atendex.Containex;
using Atendex.Dominio;
using Atendex.Dominio.Interfaces;
using Atendex.Infraestrutura.Repositórios;
using Atendex.Web.AppCode;

namespace Atendex.Web
{
    public partial class ListaAtendimentosPendentes : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IGerente gerente = AtendexContext.GerenteAtual(this);
            if (gerente == null)
            {
                pnlCadastro.Visible = false;
                lblMessage.Text = "Você deve fazer o login como gerente antes de cadastrar um Tipo de Solicitação.";
                lblMessage.Visible = true;
                return;
            }

            if (!Page.IsPostBack)
            {
                uccDataInicioAbertura.Label = "Início";
                uccDataFimAbertura.Label = "Fim";
                uccDataInicioPrazo.Label = "Início";
                uccDataFimPrazo.Label = "Fim";
            }
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            CarregaAtendimentosPendentes();
        }

        private void CarregaAtendimentosPendentes()
        {
            var repositorio = new RepositorioAtendimento();
            DateTime aberturaInicio = uccDataInicioAbertura.DataEscolhida;
            DateTime aberturaFim = uccDataFimAbertura.DataEscolhida;
            if (aberturaFim < aberturaInicio) aberturaFim = aberturaInicio;

            DateTime prazoInicio = uccDataInicioPrazo.DataEscolhida;
            DateTime prazoFim = uccDataFimPrazo.DataEscolhida;
            if (prazoFim < prazoInicio) prazoFim = prazoInicio;

            string responsavel = txtResponsavel.Text;
            if (responsavel == string.Empty)
                responsavel = "%";

            var atendimentos = repositorio.ObtemAtendimentosPendentes(responsavel,
                aberturaInicio, aberturaFim, prazoInicio, prazoFim);

            gvAtendimentosPendentes.DataSource = atendimentos;
            gvAtendimentosPendentes.DataBind();
        }
    }
}
